#ifndef DATASTRUCTURE_QUEUE_H
#define DATASTRUCTURE_QUEUE_H

typedef char ElemType;

#define QueueMaxSize 10;

/**
 * 顺序表实现循环队列
 * 适合长度固定
 */
typedef struct {
    ElemType *data;
    int size;
    int front;
    int rear;
} Queue;

int verificationQueue(Queue *queue);

// 初始化队列
Queue *initQueue(int size);

// 入队列
int enQueue(Queue *queue,ElemType e);

// 出队列
ElemType deQueue(Queue *queue);

// 输出队列
void showQueue(Queue *queue);

// 队列长度
int queueLength(Queue *queue);

// 判断队列是否为空
int isEmptyQueue(Queue *queue);

// 释放内存
void deleteQueue(Queue *queue);

void queueTest();

#endif //DATASTRUCTURE_QUEUE_H
